OBJ=obj
SRC=src
SRCX=src/xml
DOC=doc

all: Analyseur

Analyseur: $(SRC)/*.l $(SRC)/*.y makefile
	flex  -Pxml $(SRC)/xml.l
	bison -p xml --debug --verbose --defines=$(SRC)/xml.tab.h $(SRC)/xml.y
	flex  -Pdtd $(SRC)/dtd.l
	bison -p dtd --debug --verbose --defines=$(SRC)/dtd.tab.h $(SRC)/dtd.y
	mv *.c $(SRC)/
	g++ -g -DYYDEBUG=1 -o $(DOC)/Analyseur \
							$(SRC)/Analyseur.cpp \
							$(SRC)/lex.xml.c \
							$(SRC)/xml.tab.c \
							$(SRC)/lex.dtd.c \
							$(SRC)/dtd.tab.c \
							$(SRC)/commun.cpp \
							$(SRCX)/Document.cpp \
							$(SRCX)/XMLDocument.cpp \
							$(SRCX)/XMLEntity.cpp \
							$(SRCX)/XMLSpecial.cpp \
							$(SRCX)/XMLNode.cpp \
							$(SRCX)/XMLText.cpp \
							$(SRCX)/XMLElement.cpp \
							$(SRCX)/DTDDocument.cpp \
							$(SRCX)/DTDEntityElement.cpp \
							$(SRCX)/DTDRule.cpp \
							$(SRCX)/DTDSimpleRule.cpp \
							$(SRCX)/DTDComplexRule.cpp \
							$(SRCX)/DTDEntityAttList.cpp \
							
	mv *.output $(SRC)/

clean:
	-rm -rf $(SRC)/*.tab.c $(SRC)/lex.*.c $(SRC)/*.tab.h $(SRC)/*.output Analyseur